Labelling buttons and image controls automatically
Note: text in square brackets [] denotes text spoken by the screenreader.
Welcome to this tutorial on labelling buttons and image controls automatically in AT Prime.
We know by now that the Demo app has four unlabelled buttons at the top of the application window. The buttons have images but no text associated with them. The images themselves aren't a lot of help either because they are just illustrations of animals: a duck, a fish, an owl and a pig. Just silly little images.
This tutorial is about labelling buttons and images automatically. We learned in an earlier tutorial how to use the Object Inspector to label the unnamed combo box but if your applications have several unnamed buttons, you'll probably not want to have to find them individually and label them one-by-one in the Object Inspector. AT Prime has a really powerful feature which lets you label these kinds of objects all at once. It uses a few techniques to do this but the favourite way is to find the tooltip for the button or object in question and to apply that as a proposed label.
You can actually activate this feature straight away from the AT Prime menu but you can also activate it from inside the Window Inspector. The thing is, you won't always know that there are buttons in a toolbar, for example, which need to be labelled, although you could activate automatic labelling from the AT Prime menu and see what happens. But you are more likely to discover unlabelled buttons when reviewing the list of objects in the Window Inspector and so I'm going to show you how to label these buttons automatically from there.
[Window Inspector AT Prime dialog. List. Minimize...]
I've opened the AT Prime menu, pressed 'w' and now the Window Inspector is displayed. I arrow down a couple of times and we come to the now familiar unnamed buttons.
[Restore...
Close...
No name, button...]
And these, of course, are the buttons we want to name. We know that if we want to activate an object in the list, we press Enter but to do anything else with an object, we go to the menu bar. If I press alt:
[View submenu alt V]
you can hear that the first menu is the View menu, there's no File menu in the Window Inspector. The next menu to the right is the Actions menu,
[Actions submenu, alt A]
followed by the Favourites menu,
[Favourites submenu, alt F]
and then the one we want,
[Auto-labeller submenu, alt l]
I'm going to arrow down to open this menu and it's the first item I want and I'll press Enter:
[Automatically label unnamed buttons and image controls, shift F2, L ... Press escape to cancel ... Results of automatic labelling - AT Prime dialog. Unsaved objects, list. Create a new document button, 4, not selected, 1 of 4]
If any potential labels are found, AT Prime displays a special results window which lists the text it found for the associated objects. Sure enough, the results window has opened and I am in a list here which shows the text found from the tooltips for the four buttons. I'll arrow down the list to see what was found.
[Create a new document, button, 4, not selected, 1 of 4
Open an existing document, button, 5, 2 of 4
Print the current document, button, 6, 3 of 4
Make the selected text bold, button, 7, 4 of 4]
That's pretty neat. We had no clue what these buttons were before but the Auto-labeller function has found text which will help us to label these buttons.
At this point, you should bear in mind that the text for each button has not been saved as yet. That's why this list is called the 'Unsaved objects' list. Let's look at the other controls in this results window. If I tab once I come to this button:
[View item in Object Inspector button, alt V]
If you wanted to change the text found in the results list, then you can do so but you have to do that in the Object Inspector and this button opens the Object Inspector for that purpose. I'll come back to that in a second.
The next button I tab to is this button:
[Save all and close button, alt S]
If you wanted to keep all of the suggested labels shown in the list, then you would select this button. Then there's the Cancel button which, of course, will discard the suggested labels for any items remaining in the list and then there's the Help button. If I tab again,
[Unsaved objects, list, Open an existing document, button, 5, 2 of 4]
I'm back in the Unsaved objects list.
I want to show you why you might want to edit a suggested label in the Object Inspector. The second item in the list here is 'Open an existing document'. This is the kind of text you would expect to find in a tooltip for a button which, when pressed, would do the same thing as pressing the Open command on a File menu. The thing is, you wouldn't necessarily want the button to say, 'Open an existing document' if simply 'Open' would be enough for you. Let's see how we can achieve that by editing the label in the Object Inspector. So with the second list item selected, I tab to the first button and press Enter.
[View item in Object Inspector button, alt V. Space, pressed. Object Inspector, Name of object, Open an existing document]
And now the Object Inspector opens. The suggested label, 'Open an existing document', is already present in the name or label field here. In this case, I just want to call the button the 'Open' button but I want to keep this text as the button's longer description. So I can cut this text to the clipboard using control_x and then just type the word 'Open' here as the name or label. And then I tab a couple of times to the Description field and paste in the text:
[Description, Open an existing document]
So the button will now be called 'Open' but its longer description will be 'Open an existing document'. I'm happy with that so I'll press Enter to close the Object Inspector and save the changes.
[Results of automatic labelling - AT Prime dialog. View item in Object Inspector button, alt V]
And focus returns to the window which shows the results of the labelling and actually, focus is still on the button which I used to open the Object Inspector so I'll shift tab back to the list of unsaved objects.
[Unsaved objects, list.
Print the current document...
Create a new document, button...
Print the current document, button
Make the selected text bold, button, 7, 3 of 3]
Now you can hear that the item has been removed from the list. Since that label was saved in its edited version by the Object Inspector, there's no need to save it twice so AT Prime has deleted that item from the list. We are left with the three other buttons' labels. Again, I could edit any one of these if I wanted in the Object Inspector but instead, I'm going to save all of these just as they are and, for that, I tab to the 'Save all and close' button and press Enter.
[View ...
[Save all and close, button, alt S. Space, pressed. Please wait ... Window Inspector AT Prime dialog. List]
When the saving is completed, the labelling results window closes and focus then returns automatically to the Window Inspector where we started the automatic labelling process. And when I now arrow down the list:
[Minimize, button, Moves the window out of the way, 1, not selected, 1 of 19
Restore...
Close, button...
Create a new document, button, 4, 4 of 19
Open, button, Open an existing document, 5, 5 of 19
Print the current document, button...
Make the selected text bold, button, 7, 7 of 19]
We can hear that all of the four buttons have been labelled. These labels, like all of the labels you save, are stored on the server and will be available to you any time you log in to AT Prime. Of course, you will be saving labels for the applications you use and not just for this Demo app.
I'll press Enter on the first button:
[Create a new document, button, 4, 4 of 19. Demo app dialog, You selected the new document button, OK button]
and a message box is displayed. If I wanted to activate the second button, I would open the Window Inspector like this, find the second labelled button here and press Enter:
[Open, button, Open an existing document.. Demo app dialog, You selected the open document button, OK button]
and now the message box for that button appears.
Where the application you are using has many unlabelled buttons, and not just four like the Demo app, then AT Prime really provides a powerful solution.
I'm going to show you how AT Prime helps to make an application called Interlex more accessible and I'll be using the automatic labelling feature to label quite a number of buttons. Interlex is an old-style freeware application which has been around for many years. It is a vocabulary learning tool which is ideal when you're learning a foreign language. The problem is that it is barely accessible but it is usable if you can remember what the fields are in certain dialogs and, of course, if you know your screenreader's special modes and special tricks.
For this demonstration, I'll be using NVDA as my screenreader. I found that Jaws was far better at picking up information that NVDA wasn't picking up at all. So this actually lets me show how AT Prime can assist where a specific screenreader has a problem.
I have opened a file containing French expressions and words relating to food.
[Food.ilx, Interlex. L'abricot...]
There are over 100 items in the list which currently has focus. I have suspended AT Prime at the moment so what you are hearing is how NVDA would normally work with this program. As I arrow down the list like this ... you will hear that absolutely nothing is being reported. With Jaws, though, each line of this list is spoken, giving the French word followed by the English translation.
If I open the Add dialog, where I can add a new French word and translation:
[Add, edit, blank]
I can tab amongst various edit fields:
[Edit, blank. Edit, blank, Edit, blank. OK button. Cancel button. Help button, alt H. Edit, blank]
But these are all unlabelled. Jaws, however, reads all of these labels although it doesn't announce the keyboard accelerators. I'll close that dialog. But that's not all. There's a toolbar at the top of the window with 19 buttons in it. You can't tab to the toolbar but with your screenreader's special navigation mode, such as object navigation in NVDA, you can find the toolbar and browse to each button. I'll do that by using object navigation.
[tbrToolbar, toolbar]
Here's the toolbar object.
[Button, button, button, button, separator, button, button]
But what's this? None of the buttons is labelled. A very common problem.
[At Prime is ready]
I have just switched AT Prime back on and you will notice immediately that as I arrow down the list, we can now hear each line being spoken:
[Several lines of French words and English translations are spoken]
AT Prime is able to collect the information which NVDA has missed.
Next, if I open the Add dialog again:
[Add, edit, Word/phrase, edit, alt W, blank]
This time, we will hear the labels for the edit fields as I tab through the dialog together with their keyboard accelerators.
[Part of speech, edit, alt P, blank. Notes, edit, alt N, blank. Translations, edit, alt T, blank. OK button. Cancel button. Help button, alt H, Word/phrase, edit, alt W]
That's much better
Let's see what we can do about the buttons on the toolbar. As I did with the Demo app, I'm going to activate that feature from within the Window Inspector.
[Context menu
Window Inspector AT Prime dialog. List. Minimize, button]
So, I've opened the Window Inspector from the AT Prime menu and, as I arrow down, you will hear a bunch of unlabelled buttons.
[Restore, button
Close, button
No name, button
No name, button
No name, button, 6, 6 of 26]
OK, I go to the Auto-Labeller menu and start the labelling process.
[View submenu, Actions submenu, Favourites submenu, Auto-Labeller, Automatically label... Press escape to cancel ...
Results of automatic labelling - AT Prime dialog. Unsaved objects, list.
New ctrl+N, button, Creates a new file
Open ctrl+O, button ...
Save ctrl+S, button...
Print ctrl+P, button...
Cut ctrl+X, button, Prepares to move the selected item, 8, 5 of 19]
There we are. The results window has now opened and the list has 19 items in it with a suggested label for each of the buttons. But let's listen a little more carefully to these items.
[Print ctrl+P, button, Prints the current file, 7, 4 of 19
Save ctrl+S, button, Saves the current file, 6, 3 of 19]
Each of them has text in the name or label field plus additional text in the Description field. While only the tooltip was available to us when labelling the buttons in the Demo app, AT Prime has found additional information about each button in the Interlex application and has added this automatically in the Description field for each button. This is really neat. I'm going to save all of the suggested labels for these buttons so I tab to the 'Save all and close' button and press Enter.
[View ...
Save all and close button, alt S. Space. Food.ilx ...
Window Inspector - AT Prime dialog. List. Minimize, button]
It takes a while for the information to be saved but when it is finished, the Window Inspector reappears and now we can hear that all of the toolbar buttons have been labelled:
[Restore
Close
New ctrl+N, button...
Open ctrl+O, button
Save ctrl+S, button...
Print ctrl+P, button...
Cut ctrl+X...
Copy ctrl+C, button, copies the selected item, 9, 9 of 26]
Of course, if I wanted to activate any of these buttons, I wouldn't have to use the screenreader's special navigation mode, I would just have to open the Window Inspector, find the button in the list and press Enter.
By the way, the automatic graphics labeller in Jaws was unable to label any of the buttons here, a common occurrence when the buttons are particularly inaccessible. You will find that AT Prime has a far higher success rate when it comes to labelling buttons and graphics.
It's very often the case that toolbar buttons have corresponding commands within the menus of the application or the buttons may relate to specific commands in dialogs but that's not always the case. But sighted people find toolbar buttons like this to be the fastest and easiest way to use commonly used features and now AT Prime gives you the same ease of access without you having to learn special navigation modes and tons of keyboard shortcuts.